package com.cc.utils;

import java.util.List;

/**
 * @author CongWT
 * @date 2018年1月8日 上午11:00:57
 * @read "Lambda扩展操作"
 */
public class Lambda {

	/*** 版权所有 CongWT */
	private Lambda() {}
	
	private static Lambda thisLambda = new Lambda();
	
	private StringBuffer retAddPend = new StringBuffer();// 最终值

	/**
	 * 连接对象
	 * @param ostr 要连接的对象
	 * @param notNULL 是否过滤掉 null
	 */
	public void AddPendToString(Object ostr, boolean notNULL){
		if(notNULL && ostr == null){
			return ;
		}
		retAddPend.append(String.valueOf(ostr));
	}

	/**
	 * 倒叙连接对象
	 * @param ostr 要连接的对象
	 * @param notNULL 是否过滤掉 null
	 */
	public void AddPendEndToString(Object ostr, boolean notNULL){
		if(notNULL && ostr == null){
			return ;
		}
		retAddPend.insert(0, String.valueOf(ostr));
	}

	/**
	 * 返回数据后直接 清空
	 * @return
	 */
	public String getRetAddPend() {
		String ret = retAddPend.toString();
		retAddPend.setLength(0);
		return ret;
	}

	/**
	 * @author CongWT
	 * @date 2017年7月29日 上午11:56:02
	 * @see 拼接集合中的每一个值
	 *
	 */
	public static synchronized <T> String getListToString(List<T> lists){
		lists.forEach(os -> thisLambda.AddPendToString(os, true));
		return thisLambda.getRetAddPend();
	}

	/**
	 * @author CongWT
	 * @date 2017年7月29日 上午11:56:02
	 * @see 拼接集合中的每一个值，每一个值后追加 fg 参数
	 *
	 */
	public static synchronized <T> String getListToString(List<T> lists, String fg){
		lists.forEach(os -> thisLambda.AddPendToString(os+fg, true));
		return thisLambda.getRetAddPend();
	}
	
	
}
